#include<stdio.h>

void order2(int a[],int n,int b[]){
	int i=0,kg=0,t,j,h;
	for(i=0;i<n-1;i++){
		kg=1;
		for(j=0;j<n-1-i;j++){
			if(a[j]>a[j+1]){
				t=a[j];
				a[j]=a[j+1];
				a[j+1]=t;
				
				h=b[j];
				b[j]=b[j+1];
				b[j+1]=h;
				kg=0;
			}
		}
		if(kg==1) break;
	}
}

int main()
{
	int n,t,flag,key,sign,z[1001],h[1001]={0};
	scanf("%d",&n);
	for(sign=0;sign<n;sign++)
	{
		scanf("%d",&z[sign]);
	}
	for(sign=0;sign<n;sign++)
	{
		t=z[sign];
		while(t!=0)
		{
			h[sign]+=t%10;
			t/=10;
		}
	}
	order2(h,n,z);
	key=1;
	int i=0,kg=0,j,p;
	for(flag=n-1;flag>=0;flag--)
	{
		kg=0;
		if(h[flag]==h[flag-1])
		{
			key++;
		}
		if(h[flag]!=h[flag-1]&&key>1)
		{
			p=0;
			for(i=flag;i<flag+key-1;i++)
			{
				kg=1;
				for(j=flag;j<flag+key-1-p;j++)
				{
					if(z[j]<z[j+1])
					{
						t=z[j];
						z[j]=z[j+1];
						z[j+1]=t;
						kg=0;
					}
				}
				if(kg==1) break;
			}
			p++;
		}
		if(h[flag]!=h[flag-1]) key=1;
	}
	for(sign=n-1;sign>=0;sign--)
	{
		printf("%d %d\n",z[sign],h[sign]);
	}
	return 0;
}
